setInfos(3, "Damian : pet play", "Cyber Master Damian will take care of you - a big 24/7 script including permissions, punishments...", "Indica, Doti", "started", 0xFFFFFF, "en", ["anal", "long", "exhibition", "femaledom", "formale", "humiliation", "urine", "transgender", "options", "spanking", "shopping", "toys", "sperm"]);

// CyberMistress - petplay
//
def endReached = false
def block = "begin"
if(loadString("cybermistress.wanted_start_block")!=null) {
	block = loadString("cybermistress.wanted_start_block")
	save("cybermistress.wanted_start_block",null)
}
def newBlock = block
while(!endReached && newBlock!=null) {
block = null
switch(newBlock) {
case "begin":
	setImage("jewell/assignments3.jpg")
	def messages0 = ["Good news my adorable little slut, it's time for your pet training. You need to learn how to be an obedient little puppy for your Master. Begin by taking off your clothes. Clothes are for people.","Time for your puppy-training my obedient pet. Remove your clothes immediately. Clothes are for people.","I'm going to train you to be my cute little puppy slave. Won't that be fun, pet?"]
	show(messages0[getRandom(3)])
	showButton("I am naked Master")
	block = "pettime"
	break

case "pettime":
	show("We'll start with your collar, the symbol of your status as my pet. If you don't have a proper one you'll have to use a belt or some string. Go find a suitable collar now!")
	showButton("Finished Master")
	block = "pettime2"
	break

case "pettime2":
	def messages2 = ["Excellent slave. Put it on. If you have a means of locking it, lock it on. Pets can't remove their own collars.","Good doggie. Put it on. Lock it if you have the means. You know dogs can't remove their own collars."]
	show(messages2[getRandom(2)])
	showButton("Finished Master")
	block = "pettime3"
	break

case "pettime3":
	show("Now I want you to go fetch two bowls. Fill one with water, and the other with some kind of cereal or chunks of bread. Bring them both back here and place them on the ground.")
	showButton("Finished Master")
	block = "pettime4"
	break

case "pettime4":
	show("Now what else does a pet need? I think you know already my little puppy. Go fetch a butt plug, or another penis shaped object. Attach a piece of string to the base and shove it up your ass so the string sticks out. This is your new tail! Wag your tail for your Master puppy!")
	showButton("Finished Master")
	block = "pettime5"
	break

case "pettime5":
	show("Now that you're a proper little puppy, it's time for you to act the part. Until I tell you you can remove your pet gear, you are my dog. That means crawl on all fours, no using your hands, and no speaking. Puppies can only bark.")
	showButton("Woof!")
	block = "pettime6"
	break

case "pettime6":
	show("Good doggie!")
	wait(3)
	block = "action"
	break

case "action":
	show("Now, what should I have my little puppy-dog do first?")
	wait(1)
	switch(getRandom(6)) {
	case 0: block = "action2"; break
	case 1: block = "action3"; break
	case 2: block = "action4"; break
	case 3: block = "action5"; break
	case 4: block = "action6"; break
	case 5: block = "action7"; break
	}
	break

case "action2":
	def messages8 = ["Wag your tail for me! Show how happy you are to be my little pet doggie! I want to see some enthusiasm, and don't stop until I say!","Wag your tail puppy, hard as you can. I want to see an excited little puppy. Don't stop until I say!"]
	show(messages8[getRandom(2)])
	wait(40+getRandom(80))
	block = "action8"
	break

case "action3":
	def messages9 = ["What's that puppy? You hear something at the door? You better start barking. Let me hear you bark like a dog for me. Don't stop until I say!","Start barking puppy. Louder. Bark as loud as you can. Don't stop until I say."]
	show(messages9[getRandom(2)])
	wait(40+getRandom(80))
	block = "action8"
	break

case "action4":
	show("All good puppies know how to play fetch. I want you to find a nearby object and fetch it for me. Remember, no hands puppy! Once you have brought it back, throw it with your mouth and bring it back again. Repeat until I give you permission to stop.")
	wait(40+getRandom(80))
	block = "action8"
	break

case "action5":
	show("Puppies have a strong instinct to dig. Since I don't want you ruining my garden you'll have to dig the floor where you are. Don't let the fact that it's impossible to break through deter you, dig that floor with all your little puppy heart! Don't stop until I say so.")
	wait(40+getRandom(80))
	block = "action8"
	break

case "action6":
	def messages12 = ["You're going to perform some tricks for me puppy! First I want you to sit. Good boy. Now lay down. Gooood boy! Okay now roll over! What a good puppy you are! Now siiit, and stay. Stay perfectly still until I say you can move.","Okay puppy, siiit. Good doggie. Now stay. STAY! Stay perfectly still until I say you can move."]
	show(messages12[getRandom(2)])
	wait(40+getRandom(80))
	block = "action8"
	break

case "action7":
	show("Nap time puppy! I want you to spin around in a circle three times, then lay on your side in a tight little ball and close your eyes and think puppy thoughts until you hear the sound.")
	wait(40+getRandom(80))
	block = "napsidetrip"
	break

case "napsidetrip":
	playSound("jewell/beep.wav")
	show("Wakey wakey puppy...")
	wait(3)
	block = "action8"
	break

case "action8":
	show("Okay my little puppy-dog that's enough of that for now.")
	wait(2)
	switch(getRandom(5)) {
	case 0: block = "action6"; break
	case 1: block = "action4"; break
	case 2: block = "food"; break
	case 3: block = "action2"; break
	case 4: block = "food"; break
	}
	break

case "food":
	show("It's time for dinner puppy! Eat up all your kibble and drink up all your water. I want those bowls licked clean. You have two minutes. Stop when you hear the sound.")
	wait(120)
	block = "play"
	break

case "play":
	playSound("jewell/beep.wav")
	show("Okay puppy, now I'm going to tell you to fetch something for me, and you have to bring it back as quick as you can. Remember no hands!")
	wait(15)
	switch(getRandom(6)) {
	case 0: block = "play2"; break
	case 1: block = "play3"; break
	case 2: block = "play4"; break
	case 3: block = "play5"; break
	case 4: block = "play6"; break
	case 5: block = "play7"; break
	}
	break

case "play2":
	show("Go fetch me a newspaper puppy!")
	wait(40)
	block = "play8"
	break

case "play3":
	show("Go fetch me some shoes puppy!")
	wait(40)
	block = "play8"
	break

case "play4":
	show("Go fetch me something penis shaped puppy!")
	wait(40)
	block = "play8"
	break

case "play5":
	show("Go fetch me something round puppy, like a ball.")
	wait(40)
	block = "play8"
	break

case "play6":
	show("Go fetch me something heavy puppy. I want you to drag it here with your mouth.")
	wait(60)
	block = "play8"
	break

case "play7":
	show("Go fetch me something dirty puppy!")
	wait(50)
	block = "play8"
	break

case "play8":
	show("Good boy!")
	switch(getRandom(2)) {
	case 0: block = "play"; break
	case 1: block = "play9"; break
	}
	break

case "play9":
	if(getBoolean("Have you obeyed all your mistresses instructions like a good little puppy?"))
		block = "beg"
	else
		block = "punish"
	break

case "beg":
	show("You've been such a good puppy I might just see fit to give you a reward.")
	wait(3)
	block = "beg2"
	break

case "beg2":
	show("But if you want your reward, you're going to have to beg for it like a real puppy-dog.")
	wait(3)
	block = "beg3"
	break

case "beg3":
	show("Okay my little doggie, sit up on your haunches and hold your arms close to your chest with your hands pointed outward. Stick out your tongue and pant like a good little puppy.")
	wait(25)
	switch(getRandom(3)) {
	case 0: block = "beg4"; break
	case 1: block = "beg5"; break
	case 2: block = "beg6"; break
	}
	break

case "beg4":
	show("Come on puppy, you can beg better than that. Wag your little tail. Stick your tongue out further.")
	wait(25)
	block = "beg7"
	break

case "beg5":
	show("I'm disappointed in you puppy, you can beg harder than that. I want to you panting so hard that you drool. You should be bouncing with excitement like a real puppy.")
	wait(25)
	block = "beg7"
	break

case "beg6":
	show("I thought you were going to beg for me puppy. I thought you wanted your reward. Come on, let's hear you whimper for me. You do want your reward don't you?")
	wait(25)
	block = "beg7"
	break

case "beg7":
	show("Alright puppy that will have to do for now. Next time I want a much better performance! You may remove your puppy gear in preparation for your reward. You may not be much of a human, but I suppose you're not a dog anymore.")
	showButton("Thank you Master")
	save("jewell.levelonepuppy", true)
	block = "beg8"
	break

case "beg8":
	if(loadInteger("jewell.deny_Orgasm")!=null && loadInteger("jewell.deny_Orgasm")>getTime()) {
		block="beg9"
		break
	}
	block = "finish"
	return "jewell/cumpermission"
	break

case "beg9":
	show("Silly puppy, you know you're not allowed to cum! That's too bad because I was really impressed with your puppy performance too. You make a much better dog than a human. I enjoyed your begging though, and that's all that matters.")
	wait(20)
	save("jewell.levelonepuppy", true)
	block = "finish"
	break

case "punish":
	def messages35 = ["BAD DOG! BAAAAAAD DOG! You will have to be punished.","NO! BAD DOG! BAD DOG! You will have to be punished."]
	show(messages35[getRandom(2)])
	wait(3)
	block = "punish2"
	break

case "punish2":
	show("Go find yourself something to spank yourself with and bring it back here. Remember you're still a dog, no using your hands.")
	wait(40)
	block = "punish3"
	break

case "punish3":
	setImage("jewell/strict.jpg")
	show("Stick your butt out in preparation for your spanking. From this point forward your dominant hand is no longer your own, it is my hand. Since only the body parts that belong to you are those of a dog, you may use this hand to spank yourself, you lucky little bitch. Grab your impliment and wait for my signal. Spank along in time with the sound.")
	showButton("Ready Master")
	block = "punish4"
	break

case "punish4":
	for(int i = 0 ; i < 30 ; i++) {
		playBackgroundSound("swat.wav")
		wait(0.91+i/250)
	}
	show("Okay puppy, start spanking! Alternate cheeks with each swat!")
	block = "punish5"
	break

case "punish5":
	for(int i = 0 ; i < 30 ; i++) {
		playBackgroundSound("swat.wav")
		wait(0.84+i/250)
	}
	show("You didn't think you were finished did you puppy? Keep spanking!")
	block = "punish6"
	break

case "punish6":
	show("")
	switch(getRandom(2)) {
	case 0: block = "punish5"; break
	case 1: block = "punish7"; break
	}
	break

case "punish7":
	show("Alright I suppose that's enough for now. I hope you learned the importance of obedience, my naughty little puppy.")
	wait(15)
	block = "finish"	
	break

case "finish":
	endReached = true
	break

default:
	show("Unfinished ? ("+block+")")
	endReached = true
} // end switch 
newBlock = block
} // end while

// This script, from http://ss.deviatenow.com, is protected by this licence : 
// CC by-NC, see http://creativecommons.org/licenses/by-nc/3.0/
